﻿using System.Collections.Generic;
using Prompts.Service.ReportExecution;

namespace Prompts.Service.PromptService.Implementation
{
    public class LooseDefaultValuesProvider : ILooseDefaultValuesProvider
    {
        public IEnumerable<ValidValue> GetDefaultValues(GlobalPromptBaseReportInfo baseReportInfo)
        {
            return GetDefaults(baseReportInfo.ValueParameterDefaults, baseReportInfo.LabelParameterDefaults);
        }

        private static IEnumerable<ValidValue> GetDefaults(IList<string> valueParameterDefaults, IList<string> labelParameterDefaults)
        {
            var valuesToReturn = new List<ValidValue>();

            var defaultValueMin = valueParameterDefaults.Count > labelParameterDefaults.Count ? labelParameterDefaults.Count
                                        : valueParameterDefaults.Count;

            for (var i = 0; i < defaultValueMin; i++)
            {
                var validValue = new ValidValue
                {
                    Label = labelParameterDefaults[i]
                    , Value = valueParameterDefaults[i]
                };
                valuesToReturn.Add(validValue);
            }
            return valuesToReturn;
        }
    }
}